var spawn = require('child_process').spawn  // 一个node的子线程

var chalk = require('chalk')           // 终端字体颜色
const ora = require("ora");                // 实现加载动画

/**
 * 安装依赖
 */
exports.installDependencies = function installDependencies(destCwd) {
  const spinner = ora();
  console.log(chalk.blue.bold('正在安装依赖，请稍等...'));
  return runCommand({ cwd: destCwd })
}


function runCommand(options) {
  return new Promise((resolve, reject) => {
    /**
     * 如果不清楚spaw的话可以上网查一下
     * 这里就是 在项目目录下执行 npm install
     */
    let SpawnOptions = Object.assign(
      {
        cwd: process.cwd(),
        stdio: 'inherit',
        shell: true, // 在shell下执行
      },
      options
    )
    console.table(SpawnOptions)
    var spwan = spawn('npm', ['install'], SpawnOptions)
    spwan.on('exit', () => { resolve() })
  })
}